#include "gamepushbutton.h"

#include <QPixmap>
#include <QMouseEvent>
#include <QPropertyAnimation>

//这是一个窗口，但是窗口内容为button，所以在这里所有窗口体的命令都适用，只是最终作用在button上
GamePushButton::GamePushButton(QWidget *parent) : QPushButton(parent)
{

}


GamePushButton::GamePushButton(QString imgNormal, QString imgPressed)//为按钮添加背景图片
    :m_imgNormal(imgNormal)
    ,m_imgPressed(imgPressed)
{
    //
    if(m_imgNormal != "")
    {
        QPixmap normalPix;
        bool ret = normalPix.load(m_imgNormal);
        if(ret)
        {
            QSize pSize(normalPix.width(),normalPix.height());//获取图片的宽高属性
            this->setFixedSize(pSize);//设置按钮的宽高属性，这里使用this是因为this本身就是button
            this->setStyleSheet("QPushButton{border:0px}");//将btn的边框变为0px
            this->setIcon(normalPix);//将图片插入this
            this->setIconSize(pSize);//设置插入图片的宽高属性
        }
    }
    else
    {

    }
}



void GamePushButton::mouseReleaseEvent(QMouseEvent *e)
{
    if(e->button() == Qt::LeftButton)
    {
        if(m_imgNormal != "")
        {
            QPixmap normalPix;
            bool ret = normalPix.load(m_imgNormal);
            if(ret)
            {
                QSize pSize(normalPix.width(),normalPix.height());//获取图片的宽高属性
                this->setFixedSize(pSize);//设置按钮的宽高属性，这里使用this是因为this本身就是button
                this->setStyleSheet("QPushButton{border:0px}");//将btn的边框变为0px
                this->setIcon(normalPix);//将图片插入this
                this->setIconSize(pSize);//设置插入图片的宽高属性
            }
        }
    }
    return QPushButton::mouseReleaseEvent(e);
}


void GamePushButton::mousePressEvent(QMouseEvent *e)
{
    if(e->button() == Qt::LeftButton)
    {
        if(m_imgPressed != "")
        {
            QPixmap pressedPix;
            bool ret = pressedPix.load(m_imgPressed);
            if(ret)
            {
                QSize pSize(pressedPix.width(),pressedPix.height());//获取图片的宽高属性
                this->setFixedSize(pSize);//设置按钮的宽高属性，这里使用this是因为this本身就是button
                this->setStyleSheet("QPushButton{border:0px}");//将btn的边框变为0px
                this->setIcon(pressedPix);//将图片插入this
                this->setIconSize(pSize);//设置插入图片的宽高属性
            }
        }
    }
    return QPushButton::mousePressEvent(e);//默认为左键
}


void GamePushButton::zoomUp()//上弹动画的实现
{
     QPropertyAnimation *upAnimation = new QPropertyAnimation(this,"geometry");
     upAnimation->setDuration(500);
     upAnimation->setStartValue(QRect(this->x(),this->y(),100,30));
     upAnimation->setEndValue(QRect(this->x(),this->y()+10,100,30));
     upAnimation->start();
}


void GamePushButton::zoomDown()//下弹动画的实现
{
        QPropertyAnimation *downAnimation = new QPropertyAnimation(this,"geometry");
        downAnimation->setDuration(500);
        downAnimation->setStartValue(QRect(this->x(),this->y()+10,100,30));
        downAnimation->setEndValue(QRect(this->x(),this->y(),100,30));
        downAnimation->start();
}





